草庐IT

c++ - std::make_pair 与 c++ 11

全部标签

c++ - 哪些适用于 Windows 的 C++11 编译器支持新的类型特征,例如 "is_nothrow_move_constructible"?

是否有支持新的C++11类型特征的适用于Windows的C++11编译器,例如is_nothrow_move_constructible?我试图编写一个支持它的容器,却发现我的编译器(VC++2010、TDMMinGW32GCC4.6)都不支持它... 最佳答案 对于mingw,我推荐STL'sdistrohere(海湾合作委员会4.7.1)。它还带有boost1.50。还有mingw-w64(原始mingw的一个分支),我推荐rubenvb'spersonalbuildshere.转到ToolchainstargettingWin

c - 为什么一个空的 C 程序编译成 47902 字节?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhyisaC/C++“HelloWorld”inthekilobytes?考虑以下用ANSIC编写的程序。file:test.cmain(){}我在Windows7上。我使用MinGW编译这个文件。$gcctest.c然后,我想看看这个文件的大小。$ls-laa.exe-rwxr-xr-x1UsernameAdministrators47902Nov2115:57a.exe看起来这个完全空洞的、毫无值(value)的C程序编译成一个大小将近50KB的二进制文件。为什么会发生这种情况?

c++ - 如何防止应用程序被执行?

我需要阻止应用程序在Windows机器上启动。最明显的方式(具有无限循环并使用EnumProcesses/OpenProcess/TerminateProcess)暗示目标应用程序/进程已经启动并且运行了一段时间。遗憾的是,重命名/编辑/修补/删除目标应用程序不是一种选择。 最佳答案 如果您运行的是Windows7或更高版本(或基于它的任何系统),那么您可以使用AppLocker功能:http://technet.microsoft.com/en-us/library/dd723686(v=ws.10).aspx

c - 如何在读取前刷新串口?

我正在尝试让微Controller通过串行端口与WindowsPC通信。在我看来,Windows正在缓冲COM1上的输入,这样如果我停止两个程序的运行,然后仅重新启动Windows程序,它仍会接收微Controller程序先前运行的一些输出。打开COM1后,我可以在开始读取之前刷新其接收缓冲区吗?是否有函数调用来执行此操作? 最佳答案 我相信您正在寻找的函数是PurgeComm,您将打开端口时从CreateFile()获得的HANDLE传递给它。我不确定,但我相信每次打开时串口也会自动刷新。但是,更好的方法是使用ReadFile(或

c++ - C 和 C++ 中 WINAPI 的区别

我正在从驱动程序读取数据。该驱动程序附带了有关如何基于该驱动程序开发应用程序的示例。这些例子是几年前写的。他们使用WINAPI和C。现在我将使用他们的一些头文件。它们定义了数据结构和各种其他内容。我尝试在C++中创建WINAPI并尝试链接到这些文件。但正如解释的here,inthelastanswer,我非常相信我的代码也有同样的问题。现在,我不能按照那里的建议去做。我的程序很长,我不能弄乱头文件。它们很复杂。我的选择是完全用C语言创建我的项目(我希望它能解决问题)。首先,我将文件.cppt0重命名为.c。(我什至不知道这两种编程语言之间的区别。到目前为止,它们的区别没有任何区别。)主

c++ - C 字符串和 std::string 之间的转换导致平台特定方式出现乱码

我今天正在处理一个特定于平台的错误,在这个错误中,在Windows机器上某个字符串会非常乱码,但在Mac上则不会。该错误与在std::string和constchar*之间进行显式和隐式转换的几行有关。基本上,我有一个带有签名的函数voidfoo(conststd::string&id);foo在某些时候打印字符串。在Windows上,如果像下面这样调用,它会打印带有不同程度损坏的id字符串(混淆前几个字符或整个字符串)std::stringmystring=bar();constchar*id=mystring.c_str();foo(id);//passtheCstylestrin

c++ - 通过 Windows API 函数替换对 AfxGetInstanceHandle() 的调用

SHELLEXECUTEINFOinfo;//Initializingstructinfo.cbSize=sizeof(info);info.fMask=SEE_MASK_NOCLOSEPROCESS|SEE_MASK_FLAG_NO_UI;info.hwnd=NULL;info.lpVerb=_T("open");info.lpParameters=sParameters_p;info.lpDirectory=_T("");info.nShow=SW_SHOW;info.hInstApp=NULL;info.lpFile=sFileName_p;//Problemhere:info.

c - 缓冲区溢出时程序没有崩溃

我想从键盘读取一个字符串并存储在buf中。我设置了一个charbuf[6]数组,这个数组最多可以存储5个字符和\0。然后我输入123456789它包含11个字符和一个\0,程序仍然可以运行,但是如果我输入更长的字符串123456789123456789它会在运行时崩溃。这两个输入也超出了buf的范围,但是一个可以运行,另一个崩溃?这是我的代码:#include#include#includevoidread_str();intmain(){read_str();system("pause");return0;}voidread_str(){charbuf[6]={};scanf("%[

c++ - 如何测试中断延迟?

WindowsEmbeddedCompact7。有没有办法从用户空间测试中断延迟时间?是否有任何工具作为平台构建器的一部分提供?我还看到了一个名为Intrtime.exe的程序-但没有关于如何使用它的示例。如何测试中断延迟时间?Intrtime.exe的引用,但我如何实现它?http://www.ece.ufrgs.br/~cpereira/temporeal_pos/www/WindowsCE2RT.htm编辑还发现:ILTiming.exeReal-TimeMeasurementTool(Compact2013)http://msdn.microsoft.com/en-us/lib

c++ - 涉及 `std::string` 的编译导致 Windows 错误状态

最小的例子:#include#includeintmain(int/*argc*/,char*/*argv*/[]){HANDLEhandle=GetStdHandle(STD_OUTPUT_HANDLE);//Behaviorthesame,withorwithout.DWORDerr=GetLastError();std::stringstr;return(int)err;//returns127ifflineaboveuncommented,0iffcommented}此程序返回127,对应于ERROR_PROC_NOT_FOUND(“找不到指定的过程。”)。请注意,err是在s